// 用户资料
let userProfile = {
  id: '123456',
  username: 'user123',
  nickname: '区块链爱好者',
  avatar: 'https://randomuser.me/api/portraits/men/32.jpg',
  email: 'user123@example.com',
  phone: '138****1234',
  inviter: 'BTC888',
  registerDate: '2023-01-15',
  lastLoginDate: '2023-06-20'
}

// 登录nonce
const nonceData = {
  nonce: '123456789abcdef',
  tips: '欢迎登录BTDAPP！\n\n请签名此消息以验证您的身份。\n\n时间戳: 2023-06-20T10:30:45.123Z'
}

// 登录token
const loginToken = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhZGRyZXNzIjoiMHg4ZjViMmI3ZDJkMzc2YzFiNWQ4MzkwYTZmNjAzYWVlZTFkMGU0MDIxIiwiaWF0IjoxNjE2MTUxOTIyLCJleHAiOjE2MTYyMzgzMjJ9.7K-oLxz9SQB9VgQ9x9Bz7khMXXL7_3-EF-7XO6mj-_c'

// 通知设置
let notificationSettings = {
  pushNotifications: true,
  emailNotifications: false,
  smsNotifications: true,
  priceAlerts: true,
  securityAlerts: true,
  marketingMessages: false,
  transactionNotifications: true
}

// 安全中心信息
const securityInfo = {
  phoneVerified: true,
  emailVerified: true,
  googleAuthEnabled: false,
  transactionPasswordSet: true,
  lastLoginIp: '192.168.1.1',
  lastLoginTime: '2023-06-20 15:30:45',
  lastLoginDevice: 'Chrome on Windows',
  loginHistory: [
    {
      id: '1',
      ip: '192.168.1.1',
      time: '2023-06-20 15:30:45',
      device: 'Chrome on Windows',
      location: '中国 广东'
    },
    {
      id: '2',
      ip: '192.168.1.2',
      time: '2023-06-18 10:15:22',
      device: 'Safari on iOS',
      location: '中国 北京'
    },
    {
      id: '3',
      ip: '192.168.1.3',
      time: '2023-06-15 08:45:11',
      device: 'Chrome on Android',
      location: '中国 上海'
    }
  ]
}

// 协议内容
const agreements = {
  user: {
    title: '用户协议',
    content: `
# 用户协议

## 1. 总则

1.1 本协议是用户（以下简称"用户"或"您"）与BTDAPP平台（以下简称"平台"）之间关于用户使用平台服务所订立的协议。

1.2 用户在使用平台提供的服务前，应当仔细阅读本协议，并同意遵守本协议的全部条款。如用户不同意本协议的任何内容，请勿注册或使用平台服务。

## 2. 服务内容

2.1 平台为用户提供数字资产交易、存储、转账等服务。

2.2 平台有权根据实际情况变更、中断或终止部分或全部的服务。

## 3. 用户权利与义务

3.1 用户有权按照本协议约定使用平台提供的服务。

3.2 用户应当遵守中华人民共和国相关法律法规及平台规则。

3.3 用户应当妥善保管账号和密码，因用户保管不善造成的损失由用户自行承担。

## 4. 免责声明

4.1 平台不对因网络故障、系统故障、通讯故障、电力故障等不可抗力因素导致的服务中断或延迟承担责任。

4.2 用户理解并接受，数字资产交易存在风险，平台不对用户的投资损失承担责任。

## 5. 协议修改

5.1 平台有权随时修改本协议的任何条款，一旦本协议的内容发生变动，平台将会在平台网站上公布修改后的协议内容。

5.2 如用户不同意修改后的协议，可以停止使用平台服务；如用户继续使用平台服务，则视为用户接受修改后的协议。

## 6. 适用法律与争议解决

6.1 本协议的订立、执行和解释及争议的解决均应适用中华人民共和国法律。

6.2 如双方就本协议内容或其执行发生任何争议，双方应尽量友好协商解决；协商不成时，任何一方均可向平台所在地有管辖权的人民法院提起诉讼。
    `
  },
  privacy: {
    title: '隐私政策',
    content: `
# 隐私政策

## 1. 引言

本隐私政策描述了BTDAPP平台（以下简称"我们"）如何收集、使用、存储和保护您的个人信息。我们重视您的隐私，并致力于保护您的个人信息安全。

## 2. 信息收集

2.1 我们可能收集的个人信息包括但不限于：姓名、联系方式、身份证明、银行账户信息等。

2.2 我们还可能收集您使用我们服务时的交易记录、登录日志等信息。

## 3. 信息使用

3.1 我们使用收集的信息来提供、维护和改进我们的服务。

3.2 我们可能使用您的联系方式向您发送服务通知、活动信息等。

## 4. 信息共享

4.1 除非获得您的明确同意，我们不会与任何第三方共享您的个人信息。

4.2 在法律要求的情况下，我们可能会披露您的个人信息。

## 5. 信息安全

5.1 我们采取各种安全措施来保护您的个人信息不被未经授权的访问、使用或披露。

5.2 尽管我们采取了安全措施，但请注意互联网传输不是完全安全的，我们不能保证您的个人信息的绝对安全。

## 6. Cookie的使用

6.1 我们使用Cookie来改善用户体验、分析网站流量等。

6.2 您可以通过浏览器设置拒绝Cookie，但这可能会影响您使用我们服务的某些功能。

## 7. 隐私政策的更新

7.1 我们可能会不时更新本隐私政策，更新后的政策将在平台上公布。

7.2 继续使用我们的服务即表示您同意接受更新后的隐私政策。

## 8. 联系我们

如果您对本隐私政策有任何疑问，请通过平台提供的联系方式与我们联系。
    `
  }
}

// 关于我们信息
const aboutInfo = {
  appName: 'BTDAPP',
  version: 'v1.0.0',
  description: 'BTDAPP是一个专注于区块链资产管理的应用平台，为用户提供安全、便捷的数字资产服务。',
  features: [
    '安全可靠的数字资产管理',
    '便捷的交易和转账功能',
    '实时的市场行情和资讯',
    '专业的客户服务和技术支持'
  ],
  contactInfo: {
    email: 'support@btdapp.com',
    telegram: 'https://t.me/btdapp_official',
    twitter: 'https://twitter.com/btdapp_official',
    website: 'https://www.btdapp.com'
  },
  companyInfo: {
    name: 'BTDAPP Technology Co., Ltd.',
    address: '香港特别行政区中环金融街88号',
    registrationNumber: 'BT123456789'
  }
}

/**
 * 获取用户资料
 * @returns {Object} 响应数据
 */
export function getUserProfile() {
  return {
    code: 0,
    message: 'success',
    success: true,
    data: userProfile
  }
}

/**
 * 更新用户资料
 * @param {Object} data 用户资料
 * @returns {Object} 响应数据
 */
export function updateUserProfile(data) {
  // 更新用户资料
  if (data.nickname) {
    userProfile.nickname = data.nickname
  }
  
  if (data.inviter) {
    userProfile.inviter = data.inviter
  }
  
  return {
    code: 0,
    message: '资料更新成功',
    success: true,
    data: userProfile
  }
}

/**
 * 退出登录
 * @returns {Object} 响应数据
 */
export function logout() {
  return {
    code: 0,
    message: '退出登录成功',
    success: true
  }
}

/**
 * 获取用户通知设置
 * @returns {Object} 响应数据
 */
export function getNotificationSettings() {
  return {
    code: 0,
    message: 'success',
    success: true,
    data: notificationSettings
  }
}

/**
 * 更新用户通知设置
 * @param {Object} data 通知设置
 * @returns {Object} 响应数据
 */
export function updateNotificationSettings(data) {
  // 更新通知设置
  notificationSettings = {
    ...notificationSettings,
    ...data
  }
  
  return {
    code: 0,
    message: '通知设置更新成功',
    success: true,
    data: notificationSettings
  }
}

/**
 * 获取安全中心信息
 * @returns {Object} 响应数据
 */
export function getSecurityInfo() {
  return {
    code: 0,
    message: 'success',
    success: true,
    data: securityInfo
  }
}

/**
 * 获取用户协议
 * @param {string} type 协议类型 (user/privacy)
 * @returns {Object} 响应数据
 */
export function getAgreement(type) {
  const agreement = agreements[type] || {
    title: '未知协议',
    content: '协议内容不存在'
  }
  
  return {
    code: 0,
    message: 'success',
    success: true,
    data: agreement
  }
}

/**
 * 获取关于我们信息
 * @returns {Object} 响应数据
 */
export function getAboutInfo() {
  return {
    code: 0,
    message: 'success',
    success: true,
    data: aboutInfo
  }
}

// 用户基本信息
const userBasicInfo = {
  address: '0x8f5b2b7d2d376c1b5d8390a6f603aeee1d0e4021',
  shortAddress: '0x8f5b...4021',
  avatar: 'https://randomuser.me/api/portraits/men/32.jpg',
  inviteCode: 'BTC888',
  isVip: true,
  vipLevel: 2
}

// 用户账户信息
const userAccounts = [
  {
    id: '1',
    name: 'HDFS',
    balance: '1,234.56',
    icon: '💎',
    bgColor: '#e6f7ff'
  },
  {
    id: '2',
    name: 'USDT',
    balance: '5,678.90',
    icon: '💵',
    bgColor: '#e8f5e9'
  },
  {
    id: '3',
    name: 'ETH',
    balance: '2.3456',
    icon: '⚡',
    bgColor: '#f0e6ff'
  },
  {
    id: '4',
    name: 'BTC',
    balance: '0.1234',
    icon: '🔶',
    bgColor: '#fff7e6'
  }
]

// 用户订单
const userOrders = [
  {
    id: 'ORD20230001',
    productName: 'Quantum Chronograph Watch - Limited Edition',
    productImage: 'https://images.unsplash.com/photo-1523275335684-37898b6baf30?q=80&w=300&auto=format&fit=crop',
    price: '1,299.00',
    quantity: 1,
    totalAmount: '1,299.00',
    status: 'pending',
    createTime: '2023-06-15 14:30:22',
    paymentMethod: 'USDT'
  },
  {
    id: 'ORD20230002',
    productName: 'Digital Smart Watch',
    productImage: 'https://images.unsplash.com/photo-1546868871-7041f2a55e12?q=80&w=300&auto=format&fit=crop',
    price: '899.00',
    quantity: 1,
    totalAmount: '899.00',
    status: 'shipping',
    createTime: '2023-06-10 09:15:45',
    paymentMethod: 'HDFS',
    trackingNumber: 'SF1234567890',
    shippingCompany: '顺丰速运'
  },
  {
    id: 'ORD20230003',
    productName: 'Classic Analog Watch',
    productImage: 'https://images.unsplash.com/photo-1524805444758-089113d48a6d?q=80&w=300&auto=format&fit=crop',
    price: '599.00',
    quantity: 2,
    totalAmount: '1,198.00',
    status: 'completed',
    createTime: '2023-05-28 16:42:10',
    paymentMethod: 'ETH',
    trackingNumber: 'YT9876543210',
    shippingCompany: '圆通速递',
    completionTime: '2023-06-05 14:23:45'
  },
  {
    id: 'ORD20230004',
    productName: 'Sport Fitness Watch',
    productImage: 'https://images.unsplash.com/photo-1508685096489-7aacd43bd3b1?q=80&w=300&auto=format&fit=crop',
    price: '499.00',
    quantity: 1,
    totalAmount: '499.00',
    status: 'cancelled',
    createTime: '2023-05-20 11:05:33',
    paymentMethod: 'USDT',
    cancelReason: '用户取消',
    cancelTime: '2023-05-20 11:30:15'
  }
]

// 账户交易记录
const accountTransactionsList = [
  {
    id: 'TX20230001',
    type: 'deposit',
    amount: '500.00',
    currency: 'USDT',
    status: 'completed',
    time: '2023-06-18 10:15:22',
    hash: '0x8f5b2b7d2d376c1b5d8390a6f603aeee1d0e4021a6f603aeee1d0e4021',
    from: '0x71c7656ec7ab88b098defb751b7401b5f6d8976f'
  },
  {
    id: 'TX20230002',
    type: 'withdraw',
    amount: '200.00',
    currency: 'USDT',
    status: 'completed',
    time: '2023-06-15 14:30:45',
    hash: '0x71c7656ec7ab88b098defb751b7401b5f6d8976fa6f603aeee1d0e4021',
    to: '0x8f5b2b7d2d376c1b5d8390a6f603aeee1d0e4021'
  },
  {
    id: 'TX20230003',
    type: 'purchase',
    amount: '899.00',
    currency: 'HDFS',
    status: 'completed',
    time: '2023-06-10 09:15:45',
    orderId: 'ORD20230002'
  },
  {
    id: 'TX20230004',
    type: 'deposit',
    amount: '1.5000',
    currency: 'ETH',
    status: 'completed',
    time: '2023-06-05 16:42:10',
    hash: '0x9f5b2b7d2d376c1b5d8390a6f603aeee1d0e4021a6f603aeee1d0e4021',
    from: '0x81c7656ec7ab88b098defb751b7401b5f6d8976f'
  },
  {
    id: 'TX20230005',
    type: 'withdraw',
    amount: '0.5000',
    currency: 'ETH',
    status: 'pending',
    time: '2023-06-01 11:05:33',
    to: '0x71c7656ec7ab88b098defb751b7401b5f6d8976f'
  },
  {
    id: 'TX20230006',
    type: 'deposit',
    amount: '0.0500',
    currency: 'BTC',
    status: 'completed',
    time: '2023-05-28 14:23:45',
    hash: '0x7f5b2b7d2d376c1b5d8390a6f603aeee1d0e4021a6f603aeee1d0e4021',
    from: '0x61c7656ec7ab88b098defb751b7401b5f6d8976f'
  },
  {
    id: 'TX20230007',
    type: 'purchase',
    amount: '1,198.00',
    currency: 'ETH',
    status: 'completed',
    time: '2023-05-28 16:42:10',
    orderId: 'ORD20230003'
  },
  {
    id: 'TX20230008',
    type: 'interest',
    amount: '5.25',
    currency: 'HDFS',
    status: 'completed',
    time: '2023-05-25 00:00:00',
    projectId: 'PRJ20230001'
  }
]

// 用户项目
const userProjects = [
  {
    id: 'PRJ20230001',
    name: 'HDFS 7天定期理财',
    icon: '💎',
    bgColor: '#e6f7ff',
    currency: 'HDFS',
    amount: '1,000.00',
    interestRate: '5.25%',
    term: '7天',
    startDate: '2023-05-20',
    endDate: '2023-05-27',
    status: 'completed',
    interest: '5.25',
    totalReturn: '1,005.25'
  },
  {
    id: 'PRJ20230002',
    name: 'USDT 30天定期理财',
    icon: '💵',
    bgColor: '#e8f5e9',
    currency: 'USDT',
    amount: '2,000.00',
    interestRate: '8.00%',
    term: '30天',
    startDate: '2023-06-01',
    endDate: '2023-07-01',
    status: 'active',
    expectedInterest: '13.15',
    progress: '60%'
  },
  {
    id: 'PRJ20230003',
    name: 'ETH 90天定期理财',
    icon: '⚡',
    bgColor: '#f0e6ff',
    currency: 'ETH',
    amount: '1.0000',
    interestRate: '10.00%',
    term: '90天',
    startDate: '2023-05-15',
    endDate: '2023-08-13',
    status: 'active',
    expectedInterest: '0.0247',
    progress: '35%'
  }
]

/**
 * 获取账户交易记录
 * @param {Object} params 查询参数
 * @returns {Object} 响应数据
 */
export function getAccountTransactions(params = {}) {
  const { currency, type, page = 1, size = 10 } = params
  
  // 筛选记录
  let filteredTransactions = [...accountTransactionsList]
  
  if (currency) {
    filteredTransactions = filteredTransactions.filter(tx => tx.currency === currency)
  }
  
  if (type) {
    filteredTransactions = filteredTransactions.filter(tx => tx.type === type)
  }
  
  // 分页
  const start = (page - 1) * size
  const end = start + size
  const list = filteredTransactions.slice(start, end)
  
  return {
    code: 0,
    message: 'success',
    success: true,
    data: {
      list,
      total: filteredTransactions.length,
      page: parseInt(page),
      size: parseInt(size)
    }
  }
}

/**
 * 获取用户信息
 * @returns {Object} 响应数据
 */
export function getUserInfo() {
  return {
    code: 0,
    message: 'success',
    success: true,
    data: userBasicInfo
  }
}

/**
 * 获取用户订单
 * @param {Object} params 查询参数
 * @returns {Object} 响应数据
 */
export function getUserOrders(params = {}) {
  const { status, page = 1, size = 10 } = params
  
  // 筛选记录
  let filteredOrders = [...userOrders]
  
  if (status) {
    filteredOrders = filteredOrders.filter(order => order.status === status)
  }
  
  // 分页
  const start = (page - 1) * size
  const end = start + size
  const list = filteredOrders.slice(start, end)
  
  return {
    code: 0,
    message: 'success',
    success: true,
    data: {
      list,
      total: filteredOrders.length,
      page: parseInt(page),
      size: parseInt(size)
    }
  }
}

/**
 * 获取用户账户信息
 * @returns {Object} 响应数据
 */
export function getUserAccounts() {
  return {
    code: 0,
    message: 'success',
    success: true,
    data: userAccounts
  }
}

/**
 * 获取用户项目
 * @param {Object} params 查询参数
 * @returns {Object} 响应数据
 */
export function getUserProjects(params = {}) {
  const { status, page = 1, size = 10 } = params
  
  // 筛选记录
  let filteredProjects = [...userProjects]
  
  if (status) {
    filteredProjects = filteredProjects.filter(project => project.status === status)
  }
  
  // 分页
  const start = (page - 1) * size
  const end = start + size
  const list = filteredProjects.slice(start, end)
  
  return {
    code: 0,
    message: 'success',
    success: true,
    data: {
      list,
      total: filteredProjects.length,
      page: parseInt(page),
      size: parseInt(size)
    }
  }
}

/**
 * 获取登录nonce
 * @param {Object} data 请求数据
 * @returns {Object} 响应数据
 */
export function nonce(data) {
  // 生成随机nonce
  const randomNonce = Math.random().toString(36).substring(2, 15) + Math.random().toString(36).substring(2, 15);
  const timestamp = new Date().toISOString();
  
  return {
    code: 0,
    message: 'success',
    success: true,
    data: {
      nonce: randomNonce,
      tips: `欢迎登录BTDAPP！\n\n请签名此消息以验证您的身份。\n\n地址: ${data.address}\n随机数: ${randomNonce}\n时间戳: ${timestamp}`
    }
  }
}

/**
 * 用户登录
 * @param {Object} data 登录数据
 * @returns {Object} 响应数据
 */
export function login(data) {
  // 验证签名逻辑在实际应用中应该在后端完成
  // 这里简单模拟登录成功
  return {
    code: 0,
    message: '登录成功',
    success: true,
    data: {
      token: loginToken,
      address: data.address,
      expireTime: Date.now() + 86400000 // 24小时后过期
    }
  }
}
